﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TakbisBilgiSorgu_v1.wsUygulama;
using System.Configuration;
using System.IO;

namespace TakbisBilgiSorgu_v1
{
    public partial class WebForm8 : System.Web.UI.Page
    {
        UygulamaWebServis uygulamaWebServis = new UygulamaWebServis();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    if (((Kullanici)Session["kullanici"]) == null)
                    {
                        MesajVer(ConfigurationManager.AppSettings["GirisYapmalisinizMesaji"].ToString());
                        Response.Redirect("Login.aspx");
                    }
                    else
                    {
                        if (uygulamaWebServis.GrupYetkiVarMiKontrolYeni(((Kullanici)Session["kullanici"]).GrupID, "BizdenHaberlerYonetim.aspx") && ((Kullanici)Session["kullanici"]).AktifMi == 1)
                        {
                            DuyuruDoldur();
                            KutucuklariDisableYap();
                            btnhaberKaydet.Visible = false;
                        }
                        else
                        {
                            MesajVer(ConfigurationManager.AppSettings["YetkinizYokMesaji"].ToString());
                            Response.Redirect("AnaSayfa.aspx");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void KutucuklariDisableYap()
        {
            try
            {
                txthaberBaslik.Enabled = false;
                txthaberBaslikIcerik.Enabled = false;
                txthaberIcerik.Enabled = false;
                ddlAktifMi.Enabled = false;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void DuyuruDoldur()
        {
            try
            {
                Session["duyuru"] = uygulamaWebServis.DuyuruGetir().ToList();
                if (Session["duyuru"] == null || ((List<Duyuru>)Session["duyuru"]).Count == 0)
                    MesajVer("Duyuru Bulunamadı.");
                else
                {
                    gvDuyuru.DataSource = (List<Duyuru>)Session["duyuru"];
                    gvDuyuru.DataBind();
                    ViewState["duyuru"] = (List<Duyuru>)Session["duyuru"];
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void MesajVer(string mesaj)
        {
            Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('" + mesaj + "')</SCRIPT>");
        }

        protected void gvDuyuru_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["duyuru"] != null)
                {
                    gvDuyuru.DataSource = ViewState["duyuru"];
                    gvDuyuru.PageIndex = e.NewPageIndex;
                }
                else
                    gvDuyuru.DataSource = null;
                gvDuyuru.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void SatirIsaretle(GridViewRowEventArgs e)
        {
            try
            {
                //mause gridin üzerine geldiğinde satırlar işaretlensin diye yaptım
                if (e.Row.RowType != DataControlRowType.DataRow)
                    return;
                // eger yaratilan satir farkliysa data satirindan buradan cik 
                e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#F0FFFF'");
                // mouse overina bu stil attribute'ini ekle 
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
                // mouse out ise eski stile don
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.Header)
                {
                    e.Row.Cells[1].Text = "Başlık";
                    e.Row.Cells[2].Text = "Başlık İçerik";
                    e.Row.Cells[3].Text = "İçerik";
                    e.Row.Cells[4].Text = "Aktif Mi";
                    e.Row.Cells[5].Text = "Kayıt Tarih";
                }

                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "AktifMi")) == "2")
                        e.Row.ForeColor = System.Drawing.Color.Red;
                    e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gvDuyuru, "Select$" + e.Row.RowIndex);
                    e.Row.ToolTip = "Click to select this row.";
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (gvDuyuru.Rows.Count > 1)
                {
                    foreach (GridViewRow row in gvDuyuru.Rows)
                    {
                        if (row.RowIndex == gvDuyuru.SelectedIndex)
                            row.ToolTip = string.Empty;
                        else
                        {
                            Session["GuncellenenDuyuru"] = null;
                            Session["GuncellenenDuyuru"] = uygulamaWebServis.DuyuruGetirIDDen(Convert.ToInt64(gvDuyuru.DataKeys[gvDuyuru.SelectedIndex].Values[0]));
                            txthaberBaslik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Baslik;
                            txthaberBaslikIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).BaslikIcerik;
                            txthaberIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Icerik;
                            Session["YuklenenResim"] = ((Duyuru)Session["GuncellenenDuyuru"]).Resim;
                            ddlAktifMi.SelectedIndex = ddlAktifMi.Items.IndexOf(ddlAktifMi.Items.FindByValue(((Duyuru)Session["GuncellenenDuyuru"]).AktifMi.ToString()));
                        }
                    }
                }
                else
                {
                    Session["GuncellenenDuyuru"] = null;
                    Session["GuncellenenDuyuru"] = uygulamaWebServis.DuyuruGetirIDDen(Convert.ToInt64(gvDuyuru.DataKeys[gvDuyuru.SelectedIndex].Values[0]));
                    txthaberBaslik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Baslik;
                    txthaberBaslikIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).BaslikIcerik;
                    txthaberIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Icerik;
                    Session["YuklenenResim"] = ((Duyuru)Session["GuncellenenDuyuru"]).Resim;
                    ddlAktifMi.SelectedIndex = ddlAktifMi.Items.IndexOf(ddlAktifMi.Items.FindByValue(((Duyuru)Session["GuncellenenDuyuru"]).AktifMi.ToString()));
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnhaberKaydet_Click(object sender, EventArgs e)
        {
            try
            {
                if (uygulamaWebServis.BosDegerMi(txthaberBaslik.Text.Trim()) &&
                    uygulamaWebServis.SqlInjectionControl(txthaberBaslik.Text.Trim()) &&
                    uygulamaWebServis.BosDegerMi(txthaberBaslikIcerik.Text.Trim()) &&
                    uygulamaWebServis.SqlInjectionControl(txthaberBaslikIcerik.Text.Trim()) &&
                    uygulamaWebServis.BosDegerMi(txthaberIcerik.Text.Trim()) &&
                    uygulamaWebServis.SqlInjectionControl(txthaberIcerik.Text.Trim()) &&
                    ddlAktifMi.SelectedIndex != 0 &&
                    Session["YuklenenResim"] != null)
                {
                    if (Session["GuncellenenDuyuru"] == null)
                    {
                        Session["GuncellenenDuyuru"] = new Duyuru();
                        ((Duyuru)Session["GuncellenenDuyuru"]).Baslik = txthaberBaslik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).BaslikIcerik = txthaberBaslikIcerik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).Icerik = txthaberIcerik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).AktifMi = Convert.ToInt32(ddlAktifMi.SelectedValue);
                        ((Duyuru)Session["GuncellenenDuyuru"]).Resim = (byte[])Session["YuklenenResim"];
                        Session["GuncellenenDuyuru"] = uygulamaWebServis.DuyuruKaydet(((Duyuru)Session["GuncellenenDuyuru"]));
                        uygulamaWebServis.YetkilendirmeLogKaydet("DuyuruKaydet", ((Duyuru)Session["GuncellenenDuyuru"]), null, null, ((Kullanici)Session["kullanici"]).ID);
                        DuyuruDoldur();
                        btnhaberKaydet.Visible = false;
                    }
                    if (Session["GuncellenenDuyuru"] != null)
                    {
                        Session["GuncellenenDuyuruGuncellenmedenOncesi"] = Session["GuncellenenDuyuru"];
                        ((Duyuru)Session["GuncellenenDuyuru"]).Baslik = txthaberBaslik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).BaslikIcerik = txthaberBaslikIcerik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).Icerik = txthaberIcerik.Text.Trim();
                        ((Duyuru)Session["GuncellenenDuyuru"]).AktifMi = Convert.ToInt32(ddlAktifMi.SelectedValue);
                        ((Duyuru)Session["GuncellenenDuyuru"]).Resim = (byte[])Session["YuklenenResim"];
                        Session["GuncellenenDuyuru"] = uygulamaWebServis.DuyuruGuncelle(((Duyuru)Session["GuncellenenDuyuru"]));
                        uygulamaWebServis.YetkilendirmeLogKaydet("DuyuruGüncelle", ((Duyuru)Session["GuncellenenDuyuruGuncellenmedenOncesi"]), ((Duyuru)Session["GuncellenenDuyuru"]), null, ((Kullanici)Session["kullanici"]).ID);
                        DuyuruDoldur();
                        btnhaberKaydet.Visible = false;
                    }
                }
                else
                    KutucuklariDisableYap();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                btnhaberKaydet.Visible = false;
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnHaberEkle_Click(object sender, EventArgs e)
        {
            try
            {
                gvDuyuru.SelectedIndex = -1;
                txthaberBaslik.Text = string.Empty;
                txthaberBaslikIcerik.Text = string.Empty;
                txthaberIcerik.Text = string.Empty;
                ddlAktifMi.SelectedIndex = 0;
                KutucuklariEnableYap();
                Session["GuncellenenDuyuru"] = null;
                btnhaberKaydet.Visible = true;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void KutucuklariEnableYap()
        {
            try
            {
                txthaberBaslik.Enabled = true;
                txthaberBaslikIcerik.Enabled = true;
                txthaberIcerik.Enabled = true;
                ddlAktifMi.Enabled = true;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnhaberGuncelle_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["GuncellenenDuyuru"] != null)
                {
                    KutucuklariEnableYap();
                    btnhaberKaydet.Visible = true;
                }
                else
                {
                    KutucuklariDisableYap();
                    btnhaberKaydet.Visible = false;
                    MesajVer("Güncellemek İstediğiniz Duyuruyu Seçip Lütfen Tekrar Deneyiniz.");
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void OpenTextFile(object sender, EventArgs e)
        {
            try
            {
                if (this.fileUpload.HasFile)
                {
                    byte[] resim = this.fileUpload.FileBytes;
                    Session["YuklenenResim"] = null;
                    Session["YuklenenResim"] = this.fileUpload.FileBytes;
                    MesajVer("Resim Eklendi.");
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }
    }
}
